Touch input transitions

ABSTRACT

Selection of input of a touch sensing surface is provided. Contacts on or near a surface are tracked to obtain touch information of the contacts. A first gesture is detected corresponding to first touch information of a number of contacts performing an activity, and a first input corresponding to the first gesture is selected. A second gesture is detected corresponding to second touch information of a number of contacts performing an activity. A determination of whether to select a second input corresponding to the second gesture is made. The second input is selected if third information satisfies a predetermined criteria, and the first input is maintained if the third information does not satisfy the predetermined criteria.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/891,635, filed Sep. 27, 2010, which claims benefit of U.S.Provisional Application Ser. No. 61/367,860, filed Jul. 26, 2010, thecontents of both which are incorporated by reference herein in theirentirety for all purposes.

FIELD OF THE DISCLOSURE

This relates generally to transitions between touch input selections,and more particularly, to selecting an input of contacts on or near atouch sensing surface.

BACKGROUND OF THE DISCLOSURE

Many types of input devices are presently available for performingoperations in a computing system, such as buttons or keys, mice,trackballs, joysticks, touch sensor panels, touch screens and the like.Touch screens, in particular, are becoming increasingly popular becauseof their ease and versatility of operation as well as their decliningprice. Touch screens can include a transparent touch sensor panelpositioned in front of a display device such as a liquid crystal display(LCD), or an integrated touch screen in which touch sensing circuitry ispartially or fully integrated into a display, etc. Touch screens canallow a user to perform various functions by touching the touch screenusing a finger, stylus or other object at a location that may bedictated by a user interface (UI) being displayed by the display device.In general, touch screens can recognize a touch event and the positionof the touch event on the touch sensor panel, and the computing systemcan then interpret the touch event in accordance with the displayappearing at the time of the touch event, and thereafter can perform oneor more actions based on the touch event.

Mutual capacitance touch sensor panels, for example, can be formed froma matrix of drive and sense lines of a substantially transparentconductive material such as Indium Tin Oxide (ITO), often arranged inrows and columns in horizontal and vertical directions on asubstantially transparent substrate. Drive signals can be transmittedthrough the drive lines, which can make it possible to measure thestatic mutual capacitance at the crossover points or adjacent areas(sensing pixels) of the drive lines and the sense lines. The staticmutual capacitance, and any changes to the static mutual capacitance dueto a touch event, can be determined from sense signals that can begenerated in the sense lines due to the drive signals.

SUMMARY OF THE DISCLOSURE

This relates generally to transitions between touch input selections,and more particularly, to selecting an input of contacts on or near atouch sensing surface. The contacts can be tracked to obtain touchinformation of the contacts, such as a number of contacts, motions ofthe contacts, timing of liftoffs and touchdowns, etc. A first gesture,corresponding to first touch information of a number of contactsperforming an activity, can be detected, and a first input correspondingto the first gesture can be selected. A second gesture, corresponding tosecond touch information of a number of contacts performing an activity,can be detected, and a determination of whether to select a second inputcorresponding to the second gesture can be made. The second input can beselected if third information satisfies a predetermined criteria, andthe first input can be maintained if the third information does notsatisfy the predetermined criteria. The third information can include,for example, number of contacts down, number of contacts lifted off,motion and/or resting of all or a subset of the contacts, arrangement ofthe contacts, whether contacts are being added or removed, and otherinformation, such as the currently selected input, the input to beselected, whether input has been locked, etc. In this way, for example,a touch sensing system can allow for more complex interactions andgreater control over touch-based input.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1D illustrate an example mobile telephone, an example digitalmedia player, an example personal computer, and an example wirelesstrackpad that each include functionality according to embodiments of thedisclosure.

FIG. 2 illustrates an example computer system that includesfunctionality according to embodiments of the disclosure.

FIG. 3 illustrates an example method of transitioning from anunspecified resting state according to embodiments of the disclosure.

FIG. 4 illustrates an example method of transitioning after a pointinput has been selected but not locked according to embodiments of thedisclosure.

FIG. 5 illustrates one example method of transitioning from a lockedpoint input according to embodiments of the disclosure.

FIG. 6 illustrates an example method of transitioning from a currentlyselected scroll input that is not locked according to embodiments of thedisclosure.

FIG. 7 illustrates an example method of transitioning from a drag inputaccording to embodiments of the disclosure.

FIGS. 8-9 illustrate an example drag continuation input according toembodiments of the disclosure.

FIG. 10 illustrates an example method of transitioning based on liftingand dropping a subset of fingers according to embodiments of thedisclosure.

DETAILED DESCRIPTION

In the following description of embodiments, reference is made to theaccompanying drawings which form a part hereof, and in which it is shownby way of illustration specific embodiments of the disclosure that canbe practiced. It is to be understood that other embodiments can be usedand structural changes can be made without departing from the scope ofthe disclosed embodiments.

The disclosed example embodiments relate to selecting an input of atouch sensing surface. A user may perform a touch input, for example, bycontacting a touch sensing surface of a computing system with one ormore fingers. For example, the user may perform a certain activity, suchas a motion, a tap, etc., with a particular number of fingers on thetouch sensing surface to move a cursor, click a button, scroll adocument, select text with a dragging motion of a cursor, etc. Thecontacts corresponding to the user's fingers can be tracked to obtaintouch information of the contacts, such as a number of contacts, motionsof the contacts, timing of liftoffs and touchdowns, etc. The touchinformation can be used to detect gestures that correspond to variousinputs.

For example, a first gesture, corresponding to first touch informationof a number of contacts performing an activity, can be detected, and afirst input corresponding to the first gesture can be selected. Forexample, a user may touchdown two fingers and move them vertically, atwo-finger vertical motion gesture can be detected, and a correspondingscroll input can be selected. A second gesture, corresponding to secondtouch information of a number of contacts performing an activity, can bedetected. For example, the user may touchdown an additional finger whilethe scroll input is selected. A determination of whether to select asecond input corresponding to the second gesture can be made. The secondinput can be selected if third information satisfies a predeterminedcriteria, and the first input can be maintained if the third informationdoes not satisfy the predetermined criteria. The third information caninclude, for example, number of contacts down, number of contacts liftedoff, motion and/or resting of all or a subset of the contacts,arrangement of the contacts, whether contacts are being added orremoved, and other information, such as the currently selected input,the input to be selected, whether input has been locked, etc. In thisway, for example, a touch sensing system can allow for more complexinteractions and greater control over touch-based input.

Although embodiments disclosed herein may be described and illustratedherein in terms of mutual capacitance touch sensing surfaces, it shouldbe understood that the embodiments are not so limited, but can beadditionally applicable to, for example, self-capacitance, optical,resistive, and other touch sensing surfaces and technologies that candetect single and/or multiple touches on or near the surface.

FIGS. 1A-1D show example systems in which embodiments of the disclosuremay be implemented. FIG. 1A illustrates an example mobile telephone 136with a touch screen 124. FIG. 1B illustrates an example digital mediaplayer 140 with a touch screen 126. FIG. 1C illustrates an examplepersonal computer 144 with a touch screen 128 and a trackpad 130. FIG.1D illustrates an example wireless trackpad 150, which can be wirelesslyconnected to a personal computer, such as personal computer 144, forexample.

FIG. 2 is a block diagram of an example computing system 200 thatillustrates one implementation of an example touch screen 220 accordingto embodiments of the disclosure. Computing system 200 could be includedin, for example, mobile telephone 136, digital media player 140,personal computer 144, or any mobile or non-mobile computing device thatincludes a touch screen. A similar computing system, with similar touchsensing functionality and without the need for display functionality,can be included in, for example, trackpad 150. Computing system 200 caninclude a touch sensing system including one or more touch processors202, peripherals 204, a touch controller 206, and touch sensingcircuitry. Peripherals 204 can include, but are not limited to, randomaccess memory (RAM) or other types of memory or storage, watchdog timersand the like. Touch controller 206 can include, but is not limited to,one or more sense channels 208, channel scan logic 210 and driver logic214. Channel scan logic 210 can access RAM 212, autonomously read datafrom the sense channels and provide control for the sense channels. Inaddition, channel scan logic 210 can control driver logic 214 togenerate stimulation signals 216 at various frequencies and phases thatcan be selectively applied to drive regions of the touch sensingcircuitry of touch screen 220. In some embodiments, touch controller206, touch processor 202 and peripherals 204 can be integrated into asingle application specific integrated circuit (ASIC).

Touch screen 220 can include touch sensing circuitry that can include acapacitive sensing medium having a plurality of drive lines 222 and aplurality of sense lines 223. Drive lines 222 can be driven bystimulation signals 216 from driver logic 214 through a drive interface224, and resulting sense signals 217 generated in sense lines 223 can betransmitted through a sense interface 225 to sense channels 208 (alsoreferred to as an event detection and demodulation circuit) in touchcontroller 206. In this way, drive lines and sense lines can be part ofthe touch sensing circuitry that can interact to form capacitive sensingnodes, which can be thought of as touch picture elements (touch pixels),such as touch pixels 226 and 227. This way of understanding can beparticularly useful when touch screen 220 is viewed as capturing an“image” of touch. In other words, after touch controller 206 hasdetermined whether a touch has been detected at each touch pixel in thetouch screen, the pattern of touch pixels in the touch screen at which atouch occurred can be thought of as an “image” of touch (e.g. a patternof fingers touching the touch screen).

Computing system 200 can also include a host processor 228 for receivingoutputs from touch processor 202 and performing actions based on theoutputs. For example, host processor 228 can be connected to programstorage 232 and a display controller, such as an LCD driver 234. Hostprocessor 228 can use LCD driver 234 to generate an image on touchscreen 220, such as an image of a user interface (UI), and can use touchprocessor 202 and touch controller 206 to detect a touch on or neartouch screen 220, such a touch input to the displayed UI. The touchinput can be used by computer programs stored in program storage 232 toperform actions that can include, but are not limited to, moving anobject such as a cursor or pointer, scrolling or panning, adjustingcontrol settings, opening a file or document, viewing a menu, making aselection, executing instructions, operating a peripheral deviceconnected to the host device, answering a telephone call, placing atelephone call, terminating a telephone call, changing the volume oraudio settings, storing information related to telephone communicationssuch as addresses, frequently dialed numbers, received calls, missedcalls, logging onto a computer or a computer network, permittingauthorized individuals access to restricted areas of the computer orcomputer network, loading a user profile associated with a user'spreferred arrangement of the computer desktop, permitting access to webcontent, launching a particular program, encrypting or decoding amessage, and/or the like. Host processor 228 can also perform additionalfunctions that may not be related to touch processing.

Computing system 200, and in particular the touch sensing system ofcomputing system 200, can allow a user to enter inputs by, for example,tapping, sliding, etc., one or more touch devices, such as fingers,thumbs, etc., on a touch sensing surface, such as touch screen 220. Aparticular input may be selected, for example, based on a number ofcontacts on or near the touch sensing surface and a motion of thecontacts. For example, one finger down on the touch sensing surface andmoving may correspond to a point input that can cause a mouse cursor tomove in the direction of the one-finger motion. Two fingers down on thetouch sensing surface and moving may correspond to a scroll input thatcan cause a document displayed on a touch screen or display to scroll inthe direction of the two-finger motion.

In order to transition between selected inputs, some systems may requirethat the user lift all fingers from the touch surface, and then drop thenumber of fingers required for the new input. In other words, somesystems may simply retain the currently-selected input even though thenumber of fingers changes, until all fingers are lifted off. Forexample, to switch from a two-finger scroll input to a one-finger pointinput, a system may require that the user lift the two fingers and dropone finger back down. In this system, the scroll input can remainselected even after lifting one of the two fingers. On the other hand,some systems may simply select the current input that matches thecurrent number of fingers down. In these systems, for example, each newfinger liftoff/touchdown can cause the selected input to switch to thecorresponding number of fingers down. In other words, these two systemscan either always allow or never allow switching between inputs whilesome fingers remain down.

Described below are various example embodiments in which switching theselected input can be based on whether or not information, such as touchinformation based on characteristics of the contacts corresponding tothe fingers, or other information, such as a current state of operation,satisfies certain predefined criteria. In the following examples, a“finger” can include a finger or a thumb, unless otherwise noted.

Example embodiments are described below using an example set of inputsthat correspond to various combinations of contact numbers/arrangementsand activities, as summarized in Table 1. When a combination of contactnumber/arrangement and activity, also referred to as a “base gesture”herein, is detected by a touch sensing system, a corresponding input canbe made to a computing system, such as computing system 200.

TABLE 1 Base Gesture Input One-Finger (1F) Tap Primary Mouse ClickOne-Finger Motion Point Two-Finger (2F) Tap Secondary Mouse ClickTwo-Finger Motion Scroll Three-Finger (3F) Motion - user Swipeselectable, one of: Drag Four-Finger (4F) Vertical Motion View AllWindows Four-Finger Horizontal Motion Application Switching

In the present example, the touch system can enter a state of “nocurrent input” when no touches are detected by the touch system, e.g.,the user is not touching the touch surface. While in the no input state,if one of the base gestures is detected, its corresponding input can beselected without requiring further evaluation. Thus, a user can selectone of the inputs in Table 1 directly by lifting all fingers, dropping(i.e., touching down) the number of fingers corresponding to the desiredinput, and performing the corresponding activity (e.g., tapping,motion). The user can lift all fingers when the desired input iscomplete, returning the system to the no input state.

In addition, the example touch system can allow for more complexinteractions that can include lifting, dropping, resting, and/or movingone or more additional fingers while a current input is selected. Thetouch system can decide whether or not to switch the currently selectedinput to a new input based on touch information determined from variouscharacteristics of the contacts, such as number of contacts down, numberof contacts lifted off, motion and/or resting of all or a subset of thecontacts, arrangement of the contacts, whether contacts are being addedor removed, and other information, such as the currently selected input,the input to be selected, whether input has been locked, etc.

FIGS. 3-10 illustrate example methods of determining when to allow andwhen to prevent switching from a currently selected input/state to a newinput/state. The example methods described below do not necessarilycover all possible switching scenarios that could occur, but provideexamples in which various touch information and other information can becompared to predefined criteria to determine whether or not to switchinputs.

FIG. 3 illustrates an example method of transitioning from anunspecified resting state. An unspecified resting state can be, forexample, a state in which all fingers are resting and no input has beenselected. The unspecified resting state can be entered by, for example,dropping one or more fingers onto the touch surface while keeping thefingers substantially stationary on the surface. While in the restingstate, certain transitions to selected inputs can be made, while othertransitions may be prevented. Starting from unspecified resting state301, if one-finger motion is detected (303) then the number of fingersdown (i.e., the number of fingers currently touching the touch surface)can be counted (305). If the number of fingers down equals two, theunspecified resting state can be maintained (307). On the other hand, ifthe number of fingers down is not equal to two, a point input can beselected (309). In other words, starting from an unspecified restingstate, a user can initiate a point input by moving one finger so long asmore than two fingers are currently down. Thus, the determination ofwhether or not to select a new input can be based on touch informationsuch as a total number of fingers down and whether the other fingersdown are in a resting state (e.g., substantially stationary). Thedetermination can also be based on other information, such as whetherthe current state is an unspecified resting state.

If one finger motion is not detected (303), and two finger motion isdetected (311), then the number of fingers down can be determined (313),and if the number of fingers down equals three then the unspecifiedresting state can be maintained (315). On the other hand, if the numberof fingers down is greater than three, then a scroll input can beselected (317). In other words, starting from an unspecified restingstate, a user can move two fingers and initiate a scroll input so longas at least four fingers are down.

If five-finger motion is detected (319), then a pointing input can beselected (323). On the other hand, if five-finger motion is notdetected, the unspecified resting state can be maintained (321). Inother words, starting from the unspecified resting state, the user canmove all five fingers to initiate a pointing input. It is noted thatneither three-finger nor four-finger motion can initiate input from theunspecified resting state. That is, if the user moves three or fourfingers, the unspecified resting state is maintained. On the other hand,if the user moves one, two, or five fingers, a new input state can beselected. In this example embodiment, once an input is selected, asubsequent resting of the fingers will not enter the unspecified restingstate, unless there is a lift off of all fingers and a subsequent touchdown in the resting state. In other words, the currently selected inputwill remain selected even though fingers subsequently rest.

FIG. 4 illustrates an example method of transitioning after a pointinput has been selected but not locked. Locking point input is describedin more detail below. Starting from a point input selected 401, if thenumber of fingers down is one (403), then the user can be pointing witha single finger. Other inputs that can occur when the user is pointingwith a single finger down can include additional finger drops (405). Ifadditional fingers are not dropped, the point input can be maintained(407). On the other hand, if additional fingers drop duringsingle-finger pointing then further testing can take place to determinewhether to switch inputs. If four fingers drop (409) then pointing inputcan be maintained (407). If four fingers do not drop, then it can bedetermined (411) if the additional finger drop occurred at a rollingstop of the single finger or that the additional finger drop occurredsoon after the touch down of the single finger. A rolling stop can bedetermined, for example, by determining a measure of deceleration ofmotion. For example, the touch system can include a pair ofautoregressive filters including a slow filter, which can provide anindication of average speed of contact motion over a longer period oftime, and a fast filter, which can provide an indication of averagespeed of contact motion over a shorter period of time. Comparing theoutputs of the two filters can provide an indication of whether thecontact motion is decelerating, for example. A rolling stop can bedetermined if the output of the fast filter falls below a predeterminedfraction of the slow filter, for example.

Referring again to the determination (411) of whether the single fingerwas at a rolling stop, it may be determined that the additional fingerdrop occurred at a rolling stop of the single finger if the additionalfinger drop occurred within a predetermined time before or after arolling stop of the single finger motion is determined by comparison ofthe autoregressive filters, for example. To determine whether theadditional finger drops occurred soon after the touch down of the singlefinger, for example, an additional finger drop of a certain number offingers can be allowed to select a new input if the drop occurs within,for example, 125 milliseconds of an initial touch down of the singlefinger. If the additional finger drop does not meet one of the criteriathat the first finger is at a rolling stop or soon after initialtouchdown, then the point input selection can be maintained (407). Onthe other hand, if the criteria is met (411) then if three additionalfingers drop (413), then a four-finger input can be selected (415). Iftwo additional fingers drop (417) then a three-finger input (e.g., swipeor drag) can be selected (419). If a one-finger tap is detected (421),then a one-finger tap input can be selected (423). If a one-finger dropis detected and the dropped finger remains down (425), then a scrollinput can be selected (427). Otherwise, the point input can remainselected (407).

In other words, if a user is pointing with one finger down, the user canchange the selected input by dropping one, two, or three fingers, solong as the one finger down comes to a rolling stop before dropping theadditional fingers. Additional finger drops of four fingers and fingerdrops that do not occur at a rolling stop or soon after initialsingle-finger touchdown may not switch the input from the selectedpointing input. Thus, the determination of whether or not to select anew input can be based on touch information such as total number offingers down, number of additional fingers dropped, and whether thesingle finger is at a rolling stop.

If more than one finger is down while point input is selected, one wayin which the user can select another input can be to move more than onefinger. However, the touch system can require that certain criteria besatisfied in order for a new input to be selected. If one or zerofingers are moving (429), then pointing input can be maintained (407).On the other hand, if more than one finger is moving (429), then it canbe determined whether all of the fingers currently down are in motion(431). If all fingers down are not moving, then a point input can belocked (433). In other words, if point input is currently selected, andmore than one but not all of the currently down fingers are moving, thenthe selection of point input can be locked. Locked point input will bedescribed in more detail in FIG. 5.

If it is determined that all fingers down are in motion (431) then itcan be determined whether the number of fingers down is equal to two orfive (435). If the finger count is two or five then the point input canbe locked (433). On the other hand, if the finger count is not equal totwo or five, it can be determined whether motion of all of the fingersdown occurred at a rolling stop (437). If the motion did not occur afterat a rolling stop, the pointing input can be maintained (407). On theother hand, if the fingers down are at a rolling stop (437), then ifthere are three fingers in motion (439) then a three-finger input (suchas swipe or drag) can be selected 441). If four-finger vertical motionis detected (443), then a view all windows input can be selected (445).If a four-finger horizontal motion is detected (447) then anapplication-switching input can be selected (449). Otherwise, thepointing input can be locked (433).

In other words, if the user is in a resting point input, that is,pointing is currently selected and the user has more than one fingerdown, then the user can continue pointing by moving just one finger. Theuser can switch to another input by making certain multi-finger motionthat meet certain criteria. Specifically, if the user is pointing withone of three fingers down, comes to a rolling stop with the singlefinger, and initiates a three-finger motion, then a three-finger inputcan be selected. If the user has four fingers down and is moving asingle finger in a pointing input, the user can enter one of thefour-finger inputs by coming to a rolling stop with the single finger,and either initiating a four-finger vertical motion to switch to a viewall windows input or initiate a four-finger horizontal motion to switchto an application switching input. All other multi-finger motion whilepointing is selected can lock the pointing input selection.

Thus, the determination of whether or not to select a new input can bebased on touch information such as a total number of fingers down,whether all or a subset of finger move, and whether fingers move atsubstantially the same time. The determination can also be based onother information, such as whether the currently selected input islocked, as will now be described in more detail.

FIG. 5 illustrates one example method of transitioning from a lockedpoint input. Starting from a locked point input selection 501, a usercan unlock the point input selection and select another input by liftingand tapping more than one finger (503) or by lifting and touching downmore than one finger (505). In each of these cases the point selectioncan be unlocked (507), and the input corresponding to the number offingers in the lift and tap or lift and touch down can be selected(509). Another way in which a user can unlock the point selection can beto lift all but one finger (511). If the user lifts all but one finger,the point input can be unlocked (513), and as long as the one fingerremains touching, the selection of pointing input can be maintained(515) in an unlocked state. Otherwise, the selected input can remainlocked in point input (517). Once the pointing input is locked, the usercan point using a wide range of finger combinations and motions. Thiscan allow a user freedom in pointing, which can be a common task. Whilemaintaining at least one finger down, the user can still change input byinitiating lifts and taps or lifts and touch downs of a subset of thetotal number of touchdown fingers. In addition, the user can simply liftall but one finger to unlock the selection of pointing, and thereforemay select other inputs through additional actions once only one fingerremains on the surface.

FIG. 6 illustrates an example method of transitioning from a currentlyselected scroll input that is not locked. Starting from the scroll inputselection 601, if the number of fingers down equals two (603) thencertain inputs may be selected by dropping additional fingers. If theuser drops additional fingers (605), and the number of additionalfingers dropped equals three (607), then the scroll input can bemaintained (609). However, if the user drops one or two additionalfingers, then an input may be changed if the additional finger dropoccurs at a rolling stop of the two scrolling fingers or if theadditional fingers drop soon after the touchdown of the original twoscrolling fingers (611). If the two scrolling fingers are not at arolling stop or did not touch down soon before the additional fingerdrop, then the scroll input can be maintained (609). However, if the twoscrolling fingers are at a rolling stop, or touchdown soon before, adrop of an additional one finger (613), then selection of a new inputcan depend on whether the user has set the three-finger input to a swipeinput or a drag input. If the user has set the three-finger input to aswipe input (615) then the swipe input can be selected (617). However,if the user has selected the three-finger input as drag input, then thescroll input can be maintained (609), i.e., the system can preventswitching to drag input. In other words, while in a two-finger scroll,the user can switch to a swipe input with an additional finger drop at arolling stop, however a user cannot switch to a three-finger drag inputfrom a two-finger scroll in the same manner. Thus, the determination ofwhether or not to switch to a new input can depend on information suchas the function of the new input, e.g., given the same touchinformation, such as number of contacts, motion, etc., switching to anew input a may depend on the function a user has chosen to correspondto a particular base gesture, for example.

This can, for example, provide an improved user experience by allowingswitching when a motion associated with switching matches a motionassociated with the new input, and preventing switching when a motionassociated with the switching does not match a motion associated withthe new input. In this example, a user may typically use quick motionsfor swipe inputs and slower motions for drag inputs. Allowing a user toswitch to swipe input at a rolling stop of two-finger scroll may be abetter match for a typical quick motion used at a rolling two-fingerstop than a typically slower drag motion. In addition, it may be moretypical that a user would want to switch to a swipe input from a scrollinput than switch to a drag input from a scroll input. In this way, forexample, using different information, such as touch information andother information, to determine whether or not to allow switching to anew input, can allow the design of a touch sensing system to be morenatural and easy to use.

Referring again to FIG. 6, if the two fingers of the scroll are at arolling stop or touch down soon before (611) and the user drops twoadditional fingers (619) then a four-finger input can be selected (621).The four-finger input can be, for example, dependent on the particulardirection of motion of the four fingers. In this case, at step 621,additional motion testing may be required in order to generate thefour-finger input, e.g., a view all windows input or an applicationswitching input. In contrast to dropping an additional single finger,dropping an additional two fingers can switch to a new input eventregardless of the function of the input event to be switched to.

It is noted that, in contrast to a single finger pointing inputselection, a scroll input selection in this example embodiment does notinclude additional ways to transition to different inputs using motionof additional fingers alone, without requiring additional finger drops.It may be more likely that a user performing a two-finger scroll wouldunintentionally move additional fingers than if the user were performinga one-finger point, for example.

FIG. 7 illustrates an example method of transitioning from a drag inputaccording to embodiments of the disclosure. Starting from the drag inputselection 701, the system can determine if the number of fingers down isequal to three (703). If the number of fingers down is not equal tothree, then if all fingers but one liftoff (705), then the input can beswitched to point input (707); otherwise, the drag input can bemaintained (709). If the number of fingers down is equal to three (703),then if a two-finger liftoff occurs (711) and the three-finger drag isnot at a rolling stop (713), then a drag continuation input can beselected (715). If the two-finger liftoff occurs at a rolling stop (713)of the three-finger drag, then the input can be switched to point input(717). If two fingers do not lift off (711), then the drag input can bemaintained (709).

In other words, if a user is dragging with three fingers, a dragcontinuation input can be selected by lifting off two of the threefingers while not at a rolling stop. The drag continuation input isdescribed in more detail with regard to FIGS. 8-9.

FIGS. 8-9 illustrate an example drag continuation input according toembodiments of the disclosure. Referring to FIG. 8, the velocity of thetwo-finger subset lifting off during a three-finger drag is obtained(801). An initial decay rate is determined and set (803) based on theliftoff velocity. FIG. 9 illustrates an example graph showing threevelocity ranges, a high-speed range 901, a medium-speed range 903, and alow-speed range 905, corresponding to a first decay rate 907, a seconddecay rate 909, and a third decay rate 911. In this example, the liftoffvelocity is in high-speed range 901, therefore, first decay rate 907 canbe selected (803) as the initial decay rate, and motion of the draginput can be initially continued at the liftoff velocity andsubsequently reduced based on the initial decay rate (805). When thevelocity of the continued drag motion reaches a next-lower velocityrange, the decay rate can be reset to the decay rate of the next-lowerrange (807). In this example, when the decaying drag motion continuationreaches medium-speed range 903, second decay rate 909 can be selectedand the continued drag motion can be reduce based on the second decayrate. Likewise, when the decaying drag continuation motion reacheslow-speed range 905.

As shown in FIG. 9, the ranges and associated decay rates can beselected such that motion continuation initiated in a high-speed range,that may be so fast that the vision of a typical user may not be able toeasily track the motion, can decay quickly. In this way, for example,motion continuation that is too fast for a user to follow can quickly beslowed to a more reasonable speed, e.g., the medium-speed range. Oncethe continued motion reaches the medium-speed range, the decay rate canbe set so that the motion decays more slowly. In this way, for example,a relatively fast motion continuation can be maintained at a speed theuser can visually track, for a longer period of time. Finally, when thecontinued motion becomes very slow, e.g., reaches the low-speed range,the decay rate can be set so that the motion decays quickly, so that thecontinued motion does not remain in a slow motion for too long beforecoming to a stop.

In some example embodiments, the ranges and rates of decay can be setsuch that a high-speed continued motion comes to a stop within apredetermined distance or time, regardless of the exact speed of theliftoff velocity within the high-speed range. Although the examplemotion continuation is described above with reference to a continueddrag motion, one skilled in the art would understand the applicabilityto other forms of motion continuation, such as cursor motioncontinuation, scrolling motion continuation, etc.

FIG. 10 illustrates an example method of transitioning based on liftingand dropping a subset of fingers according to embodiments of thedisclosure. In this example, the thumb can be considered a finger.However, in some embodiments, when the user drops a thumb in a thumbresting zone portion of the touch surface, the touch system candetermine that the contact is a thumb, and can disregard input from thethumb, or allow the user to access specialized gestures involving thethumb.

FIG. 10 illustrates that a user can switch to base gesture input whenresting with four or five fingers, even when a current input isselected, that is, when the four or five fingers down come to a rest,such as with a rolling stop. The process also can apply in a four orfive finger unspecified resting state. With four (1001) or five fingers(1003) resting, the user can lift and tap one finger (1005) to switch toa one-finger tap input (1007), lift and tap two fingers (1009) to switchto a two-finger tap input (1011), lift, drop, and move two fingers(1013) to switch to a locked scroll input (1015), lift, drop, and movethree fingers (1017) to switch to a three-finger input (1019), or, inthe five-finger resting, lift, drop, and move four fingers (1021) toswitch to a four-finger input (1023), else the currently selected inputcan be maintained (1025).

Although the disclosed embodiments have been fully described withreference to the accompanying drawings, it is to be noted that variouschanges and modifications will become apparent to those skilled in theart. Such changes and modifications are to be understood as beingincluded within the scope of the disclosed embodiments as defined by theappended claims.

What is claimed is:
 1. A method of selecting input of a computing systemincluding a touch sensing surface, the method comprising: trackingcontacts on or near the surface to obtain touch information of thecontacts; detecting a first gesture corresponding to a first input ofthe computing system; selecting the first input in response to thedetection of the first gesture; detecting a second gesture correspondingto a second input of the computing system; and determining whether totransition from the first input to the second input in response to thedetection of the second gesture, wherein determining whether totransition includes determining whether first information satisfies apredetermined criteria, selecting the second input in response to thedetection of the second gesture if the first information satisfies thepredetermined criteria, and maintaining the first input despite thedetection of the second gesture if the first information does notsatisfy the predetermined criteria.
 2. The method of claim 1, whereinthe number of contacts performing the first gesture is different thanthe number of contacts performing the second gesture.
 3. The method ofclaim 1, wherein the first and second inputs include one of a restingstate, a primary mouse click, pointing, a secondary mouse click,scrolling, swiping, dragging, viewing all windows, and switchingapplications.
 4. The method of claim 1, wherein the first informationincludes touch information of the contacts.
 5. The method of claim 4,wherein the first information includes one of a total number ofcontacts, a number of contact liftoffs, a time of contact liftoffs, anumber of contact touchdowns, a time of contact touchdowns, a number ofresting contacts, and contact motion.
 6. The method of claim 1, whereinthe first information includes information of a current state ofoperation of the computing system.
 7. The method of claim 1, wherein thefirst gesture includes one of a translational motion of one or morecontacts, a rotational motion of a plurality of contacts, a scalingmotion of a plurality of contacts, a liftoff of one or more contacts, atouchdown of one or more contacts, and a touchdown of one or morecontacts followed by keeping the one or more contacts substantiallystationary.
 8. The method of claim 1, wherein a total number of contactson or near the surface during the second gesture is greater than thenumber of contacts performing the second gesture.
 9. A computing systemincluding a touch sensing surface, the system comprising: a contacttracker that tracks contacts on or near the surface to obtain touchinformation of the contacts; and an input selection system that detectsa first gesture corresponding to a first input of the computing system,selects the first input in response to the detection of the firstgesture, detects a second gesture corresponding to a second input of thecomputing system, and determines whether to transition from the firstinput to second input in response to the detection of the secondgesture, wherein the input selection system determines whether firstinformation satisfies a predetermined criteria, selects the second inputin response to the detection of the second gesture if the firstinformation satisfies the predetermined criteria, and maintains thefirst input despite the detection of the second gesture if the firstinformation does not satisfy the predetermined criteria.
 10. Thecomputing system of claim 9, wherein the number of contacts performingthe first gesture is different than the number of contacts performingthe second gesture.
 11. The computing system of claim 9, wherein thefirst and second inputs include one of a resting state, a primary mouseclick, pointing, a secondary mouse click, scrolling, swiping, dragging,viewing all windows, and switching applications.
 12. The computingsystem of claim 9, wherein the first information includes touchinformation of the contacts.
 13. The computing system of claim 12,wherein the first information includes one of a total number ofcontacts, a number of contact liftoffs, a time of contact liftoffs, anumber of contact touchdowns, a time of contact touchdowns, a number ofresting contacts, and contact motion.
 14. The computing system of claim13, wherein the first information includes contact motion of a first setof one or more contacts, and determining whether the first informationsatisfies the predetermined criteria includes determining, based on thecontact motion, whether the first set of one or more contacts is at arolling stop.
 15. The computing system of claim 14, wherein the firstinformation further includes time of contact touchdown of one or morecontacts of a second set, and determining whether the first informationsatisfies the predetermined criteria further includes determining, basedon time of contact touchdown, whether one or more contacts of the secondset touched down within a predetermined time of the rolling stop of thefirst set of one or more contacts.
 16. The computing system of claim 9,wherein the first information includes information of a current state ofoperation of the computing system.
 17. The computing system of claim 16,wherein the first information includes one of the identity of the firstinput event, the identity of the second input event, a user selectedfunction of the second input event, and a locked state of the firstinput event.
 18. The computing system of claim 9, wherein the firstgesture includes one of a translational motion of one or more contacts,a rotational motion of a plurality of contacts, a scaling motion of aplurality of contacts, a liftoff of one or more contacts, a touchdown ofone or more contacts, and a touchdown of one or more contacts followedby keeping the one or more contacts substantially stationary.
 19. Thecomputing system of claim 9, wherein a total number of contacts on ornear the surface during the second gesture is greater than the number ofcontacts performing the second gesture.
 20. A non-transitorycomputer-readable storage medium storing computer-executableinstructions executable to perform a method of selecting input of acomputing system including a touch sensing surface, the methodcomprising: tracking contacts on or near the surface to obtain touchinformation of the contacts; detecting a first gesture corresponding toa first input of the computing system; selecting the first input inresponse to the detection of the first gesture; detecting a secondgesture corresponding to a second input of the computing system; anddetermining whether to transition from the first input to the secondinput in response to the detection of the second gesture, whereindetermining whether to transition includes determining whether firstinformation satisfies a predetermined criteria, selecting the secondinput in response to the detection of the second gesture if the firstinformation satisfies the predetermined criteria, and maintaining thefirst input despite the detection of the second gesture if the firstinformation does not satisfy the predetermined criteria.
 21. Thenon-transitory computer-readable storage medium of claim 20, wherein thenumber of contacts performing the first gesture is different than thenumber of contacts performing the second gesture.
 22. The non-transitorycomputer-readable storage medium of claim 20, wherein the first andsecond inputs include one of a resting state, a primary mouse click,pointing, a secondary mouse click, scrolling, swiping, dragging, viewingall windows, and switching applications.
 23. The non-transitorycomputer-readable storage medium of claim 20, wherein the firstinformation includes touch information of the contacts.
 24. Thenon-transitory computer-readable storage medium of claim 23, wherein thefirst information includes one of a total number of contacts, a numberof contact liftoffs, a time of contact liftoffs, a number of contacttouchdowns, a time of contact touchdowns, a number of resting contacts,and contact motion.
 25. The non-transitory computer-readable storagemedium of claim 24, wherein the first information includes contactmotion of a first set of one or more contacts, and determining whetherthe first information satisfies the predetermined criteria includesdetermining, based on the contact motion, whether the first set of oneor more contacts is at a rolling stop.
 26. The non-transitorycomputer-readable storage medium of claim 20, wherein the firstinformation includes information of a current state of operation of thecomputing system.
 27. The non-transitory computer-readable storagemedium of claim 26, wherein the first information includes one of theidentity of the first input event, the identity of the second inputevent, a user selected function of the second input event, and a lockedstate of the first input event.
 28. The non-transitory computer-readablestorage medium of claim 20, wherein the first gesture includes one of atranslational motion of one or more contacts, a rotational motion of aplurality of contacts, a scaling motion of a plurality of contacts, aliftoff of one or more contacts, a touchdown of one or more contacts,and a touchdown of one or more contacts followed by keeping the one ormore contacts substantially stationary.
 29. The non-transitorycomputer-readable storage medium of claim 20, wherein a total number ofcontacts on or near the surface during the second gesture is greaterthan the number of contacts performing the second gesture.
 30. A mobilecomputing device comprising: a touch sensing system, including a touchsensing surface, a contact tracker that tracks contacts on or near thesurface to obtain touch information of the contacts, and an inputselection system that detects a first gesture corresponding to a firstinput of the computing system, selects the first input in response tothe detection of the first gesture, detects a second gesturecorresponding to a second input of the computing system, and determineswhether to transition from the first input to second input in responseto the detection of the second gesture, wherein the input selectionsystem determines whether first information satisfies a predeterminedcriteria, selects the second input in response to the detection of thesecond gesture if the first information satisfies the predeterminedcriteria, and maintains the first input despite the detection of thesecond gesture if the first information does not satisfy thepredetermined criteria.